//保留一个位置（浪费一个空间来区分）
class MyCircularQueue {
    int[] array;
    int front;
    int rear;
    public MyCircularQueue(int k) {
        this.array=new int[k+1];
    }
    
    public boolean enQueue(int value) {
        if(isFull())
            return false;
        array[rear]=value;
        rear++;
        rear%=array.length;
        return true;
    }
    
    public boolean deQueue() {
        if(isEmpty())
            return false;
        front++;
        front%=array.length;
        return true;
    }
    
    public int Front() {
        if(isEmpty())
            return -1;
        return array[front];
    }
    
    public int Rear() {
        if(isEmpty())
            return -1;
        int index=(rear==0)?array.length-1:rear-1;
        return array[index];
    }
    
    public boolean isEmpty() {
        return front==rear;
    }
    
    public boolean isFull() {
        return (rear+1)%array.length==front;
    }
}
